#include <iostream>
#include <string>
#include <jsoncpp/json/json.h>
#include <sstream>
#include <memory>

// class person
// {

// };

int main()
{
    // 反序列化
    // std::string json_string = "{\"name\":\"张三\", \"age\":30, \"city\":\"北京\"}";

    // // 反序列化，起手式Json::Value;
    // Json::Value root;
    // Json::Reader reader;

    // bool ok = reader.parse(json_string, root);
    // (void)ok;

    // // 把序列化字符串，反序列化到了Json::Value里面
    // std::string name = root["name"].asString();
    // int age = root["age"].asInt();
    // std::string city = root["city"].asString();

    // std::cout << name << std::endl;
    // std::cout << age << std::endl;
    // std::cout << city << std::endl;


    // Json::Value root;
    // root["name"] = "张三";
    // root["sex"] = "男";
    // root["age"] = 18;

    // // Json::StreamWriterBuilder sbuilder;
    // // std::unique_ptr<Json::StreamWriter> writer(sbuilder.newStreamWriter());
    // // std::stringstream ss;
    // // writer->write(root, &ss);
    // // std::string s = ss.str();
    // // std::cout << s << std::endl;

    // // Json::FastWriter writer; // 去掉换行，网络传送的数据量不就小了吗？
    // Json::StyledWriter writer; // 用\n给我们进行按行设置了，可读性比较好
    // std::string s = writer.write(root);
    // std::cout << s << std::endl;

    // Json::Value sub;
    // sub["tel"] = "12345";
    // sub["籍贯"] = "XXX";

    // root["info"] = sub;

    // std::string s = root.toStyledString();
    // std::cout << s << std::endl;

    return 0;
}
